-
-
Notifications
You must be signed in to change notification settings - Fork 618
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix two bugs in embed action. #11
Conversation
@@ -27,6 +27,8 @@ | |||
trigger = "embed", | |||
description = "Embed scripts in scripts.c; required before release builds", | |||
execute = function () | |||
_MAIN_SCRIPT_DIR = os.getcwd() | |||
_SCRIPT_DIR = path.join(_MAIN_SCRIPT_DIR, "scripts") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How did this help?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Before this change, none of my lua scripts would get added to the embed... these two lines are in the premake4.lua script, but not in the premake5.lua script, so I copied them... made it work. Note that this may be because I was using a fairly 'old' premake5.exe to do the embedding... but I would argue that the embed process should remain as backwards compatible as possible.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I had to add those lines to premake4.lua because the 4.x code doesn't set those variables. Premake 5.x does, so these shouldn't be needed. You might want to try again without them, or provide more information about what's going wrong so we can figure out the right fix.
I'm rejecting this one, because those variables should be already set, and I believe there is some other problem at work. If you can provide a little more information about what's going on we can treat it as a bug and try to find the right fix. |
Switch over to exceptionhandling() and rtti()
Switch over to exceptionhandling() and rtti()
Rename buffer_init() to avoid clashing with a function with the same name in luasocket code: under Linux, due to the of "flat" ELF namespaces, when luasocket shared library is loaded into premake process the existing premake function is used instead of the function defined in luasocket code, resulting in luasocket buffer not being properly initialized which, in turn, leads to mysterious crashes as soon as it's used, e.g. dereferencing null timeout field: (gdb) bt #0 0x00007ffff7cce642 in timeout_markstart (tm=0x0) at ../../binmodules/luasocket/src/timeout.c:116 premake#1 0x00007ffff7cc7618 in buffer_meth_receive (L=0x5555557882a8, buf=0x5555559044a0) at ../../binmodules/luasocket/src/buffer.c:113 premake#2 0x00007ffff7ccd545 in meth_receive (L=0x5555557882a8) at ../../binmodules/luasocket/src/tcp.c:135 premake#3 0x000055555558c1cc in luaD_precall (L=0x5555557882a8, func=0x5555558e36b0, nresults=1) at ../../contrib/lua/src/ldo.c:434 premake#4 0x00005555555a971f in luaV_execute (L=0x5555557882a8) at ../../contrib/lua/src/lvm.c:1134 premake#5 0x000055555558c555 in luaD_call (L=0x5555557882a8, func=0x5555558e3640, nResults=0) at ../../contrib/lua/src/ldo.c:499 premake#6 0x000055555558c5b3 in luaD_callnoyield (L=0x5555557882a8, func=0x5555558e3640, nResults=0) at ../../contrib/lua/src/ldo.c:509 premake#7 0x0000555555588af5 in lua_callk (L=0x5555557882a8, nargs=2, nresults=0, ctx=0, k=0x0) at ../../contrib/lua/src/lapi.c:925 premake#8 0x00005555555af4f2 in hookf (L=0x5555557882a8, ar=0x7fffffffd270) at ../../contrib/lua/src/ldblib.c:316 premake#9 0x000055555558bafb in luaD_hook (L=0x5555557882a8, event=2, line=273) at ../../contrib/lua/src/ldo.c:269 premake#10 0x000055555558b284 in luaG_traceexec (L=0x5555557882a8) at ../../contrib/lua/src/ldebug.c:687 premake#11 0x00005555555a6b71 in luaV_execute (L=0x5555557882a8) at ../../contrib/lua/src/lvm.c:801 premake#12 0x000055555558c555 in luaD_call (L=0x5555557882a8, func=0x555555889360, nResults=1) at ../../contrib/lua/src/ldo.c:499 premake#13 0x000055555558c5b3 in luaD_callnoyield (L=0x5555557882a8, func=0x555555889360, nResults=1) at ../../contrib/lua/src/ldo.c:509 premake#14 0x0000555555588b60 in f_call (L=0x5555557882a8, ud=0x7fffffffdbb0) at ../../contrib/lua/src/lapi.c:943 premake#15 0x000055555558b5a5 in luaD_rawrunprotected (L=0x5555557882a8, f=0x555555588b2b <f_call>, ud=0x7fffffffdbb0) at ../../contrib/lua/src/ldo.c:142 premake#16 0x000055555558cd85 in luaD_pcall (L=0x5555557882a8, func=0x555555588b2b <f_call>, u=0x7fffffffdbb0, old_top=64, ef=48) at ../../contrib/lua/src/ldo.c:729 premake#17 0x0000555555588c28 in lua_pcallk (L=0x5555557882a8, nargs=0, nresults=1, errfunc=3, ctx=0, k=0x0) at ../../contrib/lua/src/lapi.c:969 premake#18 0x0000555555584734 in premake_pcall (L=0x5555557882a8, nargs=0, nresults=1) at ../../src/host/premake.c:287 premake#19 0x0000555555584867 in premake_execute (L=0x5555557882a8, argc=5, argv=0x7fffffffdd98, script=0x555555685052 "src/_premake_main.lua") at ../../src/host/premake.c:316 premake#20 0x000055555558535e in main (argc=5, argv=0x7fffffffdd98) at ../../src/host/premake_main.c:19 For consistency, rename all the other buffer_xxx functions too, even though they don't conflict with anything right now.
No description provided.